package main

import "fmt"

var A int = 100 // 全局变量

func main() {
	// 声明变量默认值是 0
	var a int
	fmt.Println("a=", a)
	fmt.Printf("type of a = %T\n", a)
	// 声明变量，初始化
	var b int = 100
	fmt.Println("b = ", b)
	fmt.Printf("type of b = %T\n", b)
	// 初始化可去省去变量类型，通过值去匹配变量的树技类型
	var c = 100
	fmt.Println("c = ", c)
	fmt.Printf("type of c = %T\n", c)
	// 字符串
	var d string = "dasda"
	fmt.Println("d = ", d)
	fmt.Printf("type of d = %T\n", d)
	// 最常用方法：冒号，省略var，直接自动匹配，":="初始化加赋值，函数内部使用
	e := 3213.432
	fmt.Println("e = ", e)
	fmt.Printf("type of e = %T\n", e)

	fmt.Println("A = ", A)
	fmt.Printf("type of A = %T\n", A)

	// 声明多个变量
	var x, y int = 100, 100
	fmt.Println("x = ", x, ", y=", y)
	var m, n = 100, "88090"
	n = "kjuhku"
	// 多行多变量声明
	var (
		xx int  = 121
		zz bool = true
	)
	fmt.Println("m = ", m, ", n = ", n)
	fmt.Println("xx = ", xx, ", zz = ", zz)
}
